package com.sistemadistribucion.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sistemadistribucion.controlador.BusinessDelegate;


@WebServlet(asyncSupported = true, urlPatterns = { "/Sistema" })
public class Sistema extends HttpServlet {
	private static final long serialVersionUID = 1L;

       
    public Sistema() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try { 	
		String action = request.getParameter("action");
		String jspPage = "main.jsp";		
			
		if ((action==null) || (action.length() < 1) )
		{
			action = "default";
		}
		
		if ("default".equals(action))
		{
			jspPage = "main.jsp";
		}			
		else if ("validarUsuario".equals(action)) {
			System.out.println("Validando usuario");
			System.out.println("User:" + request.getParameter("txtUsuario"));
			System.out.println("Pass:" + request.getParameter("txtPassword"));
			
			if (BusinessDelegate.getInstancia().validarUsuario(
					request.getParameter("txtUsuario"), 
					request.getParameter("txtPassword"))){
				System.out.println("User correcto");
				
				request.getSession().setAttribute("sStr_User", request.getParameter("txtUsuario"));
				request.getSession().setAttribute("sInt_Logueado", "1");				
				request.setAttribute("action", null);
			}
			else{
				System.out.println("User invalido");
				request.getSession().setAttribute("logueado", "0");
			}
		}			
		else if ("desloguearUsuario".equals(action)) {
			String u = (String) request.getSession().getAttribute("qStr_User");
			request.getSession().setAttribute("sInt_Logueado", "0");
			request.getSession().setAttribute("sStr_User", "Invitado");
			request.getSession().setAttribute("resMensaje", "El usuario: " + u + " fue deslogeado.");
			
			response.setContentType("text/plain");
			response.setCharacterEncoding("UTF-8");
			response.getWriter().write("{ \"mensaje\" : \"hola\" }");
			
//	        response.setContentType("text/plain");
//	        response.getWriter().write("El usuario: " + u + " fue deslogeado.");
	        
//			response.setContentType("text/plain");  
//			response.setCharacterEncoding("UTF-8"); 
//			response.getWriter().write("{\"resMensaje\": \"El usuario: " + u + " fue deslogeado.\"}");
			
			
			
//			PrintWriter out.response.getWriter();
//			StringBuffer res = new StringBuffer();
//			while (rs.next()) {
//			    String location = rs.getString(2);
//			    String track = rs.getString(1);
//			    String myDate = rs.getString(3);
//			    res.append("{");
//			    res.append("'location':");
//			    res.append(location);
//			    res.append(",");
//			    res.append("'track':");
//			    res.append(track);
//			    res.append(",");
//			    res.append("'myDate ':");
//			    res.append("myDate ");
//			    res.append("}");
//			}
//			out.println(res.toString());
			
			
			
		}
		else if ("pruebaJQuery".equals(action)) {

			String saludo = "Hola " + request.getParameter("nombreUSuario").trim();
			
			
			response.setContentType("text/plain");
			response.getWriter().write(saludo);
		}
		
		System.out.println("Dispatch al main desde Sistema");
		dispatch(jspPage,request, response);
		
	} catch (Exception e) {
		e.printStackTrace();
	}
	}
	
	
	protected void dispatch(String jsp, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		if(jsp != null)
		{
			RequestDispatcher rd = request.getRequestDispatcher(jsp);
			rd.forward(request, response);
		}
	}
	
}
